package handler

import (
	"go-api/api/v1/request"
	"go-api/internal/service"
	res "go-api/pkg/response"

	"github.com/gin-gonic/gin"
)

// Register 注册
//
//	@Summary	注册
//	@Tags		users
//	@Accept		json
//	@Produce	json
//	@Param		Authorization	header		string		true	"token"
//	@Param		body	body		request.RegisterReq	true	"请求body"
//	@Success	200		{object}	res.Res		"成功"
//	@Failure	400		{object}	string			"请求错误"
//	@Failure	500		{object}	string			"内部错误"
//	@Router		/go/api/v1/users/register [post]
func Register(ctx *gin.Context) {
	//解析参数信息
	var reqParam request.RegisterReq
	if err := ctx.BindJSON(&reqParam); err != nil {
		res.SendErr(ctx, res.ErrParamParse)
		return
	}

	svc := service.NewUserService(ctx.Request.Context())
	err := svc.Register(reqParam)
	if err != nil {
		res.SendErr(ctx, err)
		return
	}
	res.Success(ctx, nil)
	return
}

// Audit 审核
//
//	@Summary	注册
//	@Tags		users
//	@Accept		json
//	@Produce	json
//	@Param		Authorization	header		string		true	"token"
//	@Param		body	body		request.AuditReq	true	"请求body"
//	@Success	200		{object}	res.Res		"成功"
//	@Failure	400		{object}	string			"请求错误"
//	@Failure	500		{object}	string			"内部错误"
//	@Router		/go/api/v1/users/audit [post]
func Audit(ctx *gin.Context) {
	//解析参数信息
	var reqParam request.AuditReq
	if err := ctx.BindJSON(&reqParam); err != nil {
		res.SendErr(ctx, res.ErrParamParse)
		return
	}

	svc := service.NewUserService(ctx.Request.Context())
	err := svc.Audit(reqParam)
	if err != nil {
		res.SendErr(ctx, err)
		return
	}
	res.Success(ctx, nil)
	return
}
